1. The Field of the Invention
This invention relates to systems, methods, and computer program products for modeling, such as the design of commercial and residential interiors, and related spaces.
2. Background and Relevant Art
As computerized systems have increased in popularity, so has the range of applications that incorporate computational technology. Computational technology now extends across a broad range of applications, including a wide range of productivity and entertainment software. Indeed, computational technology and related software can now be found in a wide range of generic applications that are suited for many environments, as well as fairly industry-specific software.
One such industry that has employed specific types of software and other computational technology increasingly over the past few years is that related to building and/or architectural design. In particular, architects and interior designers (or “designers”) use a wide range of design software for designing the aesthetic as well as functional aspects of a given residential or commercial space. In some such cases, the designer might use some software programs that might be better suited for exterior design, and then use other software programs that might be better suited for interior design. For example, a designer might implement one software program to design an overall look of a building, and then use the software to design or position each of the functional components of the building, such as weight-bearing walls, trusses in a roof, positioning of electrical outlets, and so on. The designer might then use another software program, whether separately, or as an add-on to the first software program, to design functional walls for offices, design where to place work stations, design the position of desks, chairs, lamps, and so forth.
When designing the exterior and/or interior of a given residential or commercial space, the designer will ordinarily need to take care that each of the elements in the design are structurally sound when built. This is because typical design software allows spaces to be fairly configurable to suit the user's tastes without specific regard in many cases to whether the design will actually work. For example, one typical software design program might allow an architect to design a roof or ceiling that is ill-suited for the number or type of weight-bearing walls the architect has presently drawn. If the roof were actually constructed as designed by the architect, the roof or ceiling might collapse. In a situation such as this, however, the builder might indicate to the architect that the design is physically impossible or impractical, and ask for a redesign. This, of course, can lead to any number of inefficiencies.
Part of the problem with many design software programs that can lead to designing physically impractical structures is the notion that many such design problems require some drawing of a space in flat, two-dimensional space. For example, the outside of a building is designed in a view that emphasizes primarily only height and width, while a top (“plan”) view of a building is designed in a view that emphasizes primarily only length and width. With views such as these, the designer will either need to independently visualize the three-dimensional spacing, or will need to perform a separate rendering of the design, if the software allows for it.
While three-dimensional rendering is available in some design software, three-dimensional rendering is fairly processing or resource intensive, and can take an additional amount of time. In particular, traditional rendering programs can take anywhere from several minutes to several hours to appropriately render all of the lighting and shadowing characteristics of a given space with any accuracy. Alternatively, another type of rendering program might simply generate only a very rough set of lighting and shadowing characteristics of a given space based primarily on certain assumptions about a given object's shape.
For example, a gaming engine, which is not typically used in design systems, might rely on a graphical processing unit to determine and generate certain rough visual effects in real-time. With this type of system, however, both the determination and rendering are done as the user is making selections in real-time, and, as such, is quite limited in its ability to provide believable, realistic visual effects that would be useful in a design environment. Thus, conventional software is either too processing intensive, or insufficiently processing intensive to efficiently render expected, believable visual effects of design choices in a given space.
In addition, neither the three-dimensional rendering nor the two-dimensional drawing views are designed to accommodate necessary modifications to the objects or walls, based on real-world materials, or other important constraints. For example, a designer might place several L-shaped desks in a work space that are to be arranged back to back against a cubicle wall. In an ordinary environment, positioning the L-shaped desks together might involve a next step of removing a leg where one leg might be shared, or removing a bracket from one of the L-shaped desks for similar reasons. Accordingly, both the two-dimensional views and three-dimensional renderings of conventional design software tends to capture only what is written, and requires the designer to add or remove parts in a specific drawing to reflect real-world usage. This further encumbers the processing, or potential processing, of realistic visual effects for display, particularly in real-time.
Accordingly, an advantage in the art can be realized with systems, methods, and computer program products that provide a user with the ability to efficiently view and navigate realistic-appearing designs in a highly configurable, and yet user-friendly manner. In particular, an advantage can be realized with expert systems that are configured to specifically capture possible or practical configurations of a designer's intent.